Skip to content

[universal] - Removing obsolete NVS (GHSA-r4q5-vmmm-2653) and patching pip for Python 3.13.8 (GHSA-jp4c-xjxw-mgf9)#1928

Open
Kaniska244 wants to merge 6 commits into
devcontainers:mainfrom
Kaniska244:nvs-removal-universal
Open

[universal] - Removing obsolete NVS (GHSA-r4q5-vmmm-2653) and patching pip for Python 3.13.8 (GHSA-jp4c-xjxw-mgf9)#1928
Kaniska244 wants to merge 6 commits into
devcontainers:mainfrom
Kaniska244:nvs-removal-universal

Conversation

@Kaniska244

@Kaniska244 Kaniska244 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR removes the obsolete NVS (Node Version Switcher) local feature from the universal image to mitigate the follow-redirects vulnerability GHSA-r4q5-vmmm-2653. It also patches the pip version bundled with the pinned Python 3.13.8 to address GHSA-jp4c-xjxw-mgf9.

NVS is no longer required in the universal image — Node.js version management is already fully handled by nvm (Node Version Manager), which remains installed and configured. Removing NVS eliminates the transitive dependency on the vulnerable follow-redirects package.

Motivation

  • Security (NVS): The NVS tool (cloned from jasongin/nvs) pulls in the follow-redirects package, which is affected by GHSA-r4q5-vmmm-2653.
  • Security (pip): The pip version shipped with pinned Python 3.13.8 is affected by GHSA-jp4c-xjxw-mgf9 and needs to be upgraded.
  • Redundancy: NVS functionality overlaps with nvm, which is already present and is the primary Node version manager in this image.

Changes

NVS removal

File Change
cgmanifest.json Removed the nvs component registration (jasongin/nvs) from the component governance manifest.
src/universal/.devcontainer/devcontainer.json Removed the ./local-features/nvs feature reference and its entry from the overrides list.
src/universal/.devcontainer/local-features/nvs/devcontainer-feature.json Deleted — NVS feature definition.
src/universal/.devcontainer/local-features/nvs/install.sh Deleted — NVS install script (cloned jasongin/nvs and pulled in the vulnerable dependency).
src/universal/.devcontainer/local-features/setup-user/devcontainer-feature.json Removed the NVS_HOME environment variable.
src/universal/manifest.json Bumped version 6.0.87.0.0; removed the nvs entry from the git tools map.
src/universal/README.md Updated example image tags 6.x7.0.0.

pip security patch (GHSA-jp4c-xjxw-mgf9)

File Change
src/universal/.devcontainer/local-features/patch-python/install.sh Added a pip upgrade for the pinned Python 3.13.8 (gated on PATCH_PYTHON_PIP_UPGRADE_PATH). Includes a note to remove this once 3.13.8 is bumped.
src/universal/test-project/test-utils.sh Added a checkPythonPipVersion helper to assert the installed pip version meets a minimum requirement.

Tests

File Change
src/universal/test-project/test.sh Removed the nvs version check; replaced the old nvm install 8.0.0 test with checks that switch between the default (24) and additional (22) Node versions using nvm; added a pip version check (>= 26.1.0) for Python 3.13.8.

Testing

  • Node.js: Removed the NVS-specific check (nvs --version) and verified nvm can switch to an additional pre-installed Node version (22) and back to the default (24), confirming version management still works without NVS.
  • pip: Added checkPythonPipVersion and a test asserting the 3.13.8 pip version is >= 26.1.0.

Impact / Notes

  • Breaking change: The image version is bumped from 6.0.8 to 7.0.0, reflecting the removal of the nvs tool.
  • Users relying on the nvs command or the NVS_HOME environment variable in the universal image should migrate to nvm.
  • The pip patch in patch-python/install.sh is a temporary workaround and should be removed once the pinned Python 3.13.8 is updated to a newer version.
  • No changes to the default Node.js version behavior.

@Kaniska244 Kaniska244 marked this pull request as ready for review July 10, 2026 15:37
Copilot AI review requested due to automatic review settings July 10, 2026 15:37
@Kaniska244 Kaniska244 requested a review from a team as a code owner July 10, 2026 15:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the obsolete NVS (Node Version Switcher) devcontainer feature from the Universal image to mitigate the follow-redirects vulnerability advisory GHSA-r4q5-vmmm-2653, and updates versioning/docs/tests accordingly.

Changes:

  • Remove the local nvs feature from the Universal devcontainer configuration and related environment variables.
  • Update the Universal image manifest and README to version 6.0.9.
  • Adjust Universal smoke tests to stop validating nvs and to validate nvm switching behavior instead.
Show a summary per file
File Description
src/universal/test-project/test.sh Removes nvs validation and updates nvm switching checks.
src/universal/README.md Updates the example semantic-version tag to 6.0.9-noble.
src/universal/manifest.json Bumps version to 6.0.9 and removes nvs from listed git-installed components.
src/universal/.devcontainer/local-features/setup-user/devcontainer-feature.json Removes the NVS_HOME container environment variable.
src/universal/.devcontainer/local-features/nvs/install.sh Deletes the NVS feature install script.
src/universal/.devcontainer/local-features/nvs/devcontainer-feature.json Deletes the NVS feature definition.
src/universal/.devcontainer/devcontainer.json Removes ./local-features/nvs from features and install order.

Review details

  • Files reviewed: 7/7 changed files
  • Comments generated: 2
  • Review effort level: Low

Comment thread src/universal/manifest.json Outdated
Comment thread src/universal/manifest.json

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review details

  • Files reviewed: 10/10 changed files
  • Comments generated: 2
  • Review effort level: Low

Comment thread src/universal/test-project/test-utils.sh
Comment thread src/universal/.devcontainer/local-features/patch-python/install.sh
Kaniska244 and others added 2 commits July 13, 2026 17:16
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@Kaniska244 Kaniska244 changed the title [universal] - Removing obsolete NVS to mitigate follow-redirects vulnerability issue GHSA-r4q5-vmmm-2653 [universal] - Removing obsolete NVS (GHSA-r4q5-vmmm-2653) and patching pip for Python 3.13.8 (GHSA-jp4c-xjxw-mgf9) Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants